# coding=utf-8
# 代码文件：chapter7/ch7.2.2.py

from datetime import datetime

import xlwings as xw

# 从docxtpl库导入DocxTemplate对象
from docxtpl import DocxTemplate

''' # 读取Excel文件获得员工数据 '''


def readdata():
    app = xw.App(visible=False, add_book=False)
    f = r'data/员工信息.xlsx'
    print('打开文件:', f)
    wb = app.books.open(f)

    sheet1 = wb.sheets[0]

    # 选择姓名单元格区域
    rng = sheet1.range('B2').expand('down')

    names = rng.value
    wb.close()
    app.quit()

    print('关闭文件:', f)
    # 返回姓名列表
    return names


if __name__ == '__main__':

    '''获得员工姓名列表 '''
    emps = readdata()

    # 获得当前日期，设置日期格式为yyyy-mm-dd（4位年、2位月和2位日）
    date = datetime.now().strftime('%Y-%m-%d')
    #  设置输出目录
    outdir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\out'

    for emp in emps:
        tpl = DocxTemplate('data/证书模板.docx')

        context = {}  # 传递给模板的字典对象
        context['name'] = emp
        context['title'] = '关总经理'
        context['date'] = date

        tpl.render(context)  # 渲染模板生成docx文档

        file = ('{0}/证书-{1}.docx'.format(outdir, emp))
        tpl.save(file)  # 将渲染成文档对象保存为docx文件
        print('{0}证书生成完成。'.format(emp))

    print('Game Over！')
